package com.dolphin.aiagentplatform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dolphin.aiagentplatform.ai.message.MessageVO;
import com.dolphin.aiagentplatform.model.entity.ChatMessage;
import org.springframework.ai.chat.messages.Message;

import java.util.List;

/**
 * 聊天消息服务接口
 */
public interface ChatMessageService extends IService<ChatMessage> {

    /**
     * 保存聊天消息
     *
     * @param chatId    聊天ID
     * @param userId    用户ID
     * @param role      角色(system/user/assistant)
     * @param content   消息内容
     * @param modelType 模型类型
     * @return 是否保存成功
     */
    boolean saveChatMessage(String chatId, Long userId, String role, String content, String modelType);

    /**
     * 根据聊天ID获取聊天消息列表
     *
     * @param chatId 聊天ID
     * @return 聊天消息列表
     */
    List<Message> getChatMessagesByChatId(String chatId);

    /**
     * 根据聊天ID获取聊天消息VO列表
     *
     * @param chatId 聊天ID
     * @return 聊天消息VO列表
     */
    List<MessageVO> getChatMessageVOsByChatId(String chatId);

    /**
     * 获取聊天消息数量
     *
     * @param chatId 聊天ID
     * @return 聊天消息数量
     */
    int getChatMessageCount(String chatId);

    /**
     * 获取完整对话数量（system+user+assistant为一组）
     * @param chatId 聊天ID
     * @return 完整对话数量
     */
    int getConversationCount(String chatId);

    /**
     * 删除聊天消息
     *
     * @param chatId 聊天ID
     * @return 是否删除成功
     */
    boolean deleteChatMessages(String chatId);
}
